EasyMod for Windows Version 1.1

Overview

Parts of the EasyMod Window

Menu Commands

The Pattern Editor

The EasyMod Sample Editor

Steps in Creating a Song

File Formats

Registration

Disclaimer

Thanks to ...

Coming Soon ...


Overview

EasyMod for Windows Version 1.1  was coded in an attempt to make MOD creation easier. It is designed to make creating and editing MOD files simple and fast. It includes a song table editor, pattern editor, and sample editor for fully integrated MOD file creation and sample recording.  EasyMod is also a MOD player.

Currently, EasyMod supports 4-Channel Protracker 1.1 MOD files, the Advanced Gravis Ultrasound card and Windows MCI for MOD playback, and Windows wave devices for sample recording and playback. If you would like to see other formats supported, please see the IronWorks Software link for contacting the author. Special consideration will be given to anyone who can supply formats and/or code with the request. You'll even get you an official thank-you in the next release.

Contents of the EASYMOD.ZIP File

This file should contain the following:

EASYMOD.EXE

The executable.

EASYMOD.HLP

This file.

EASYMOD.FON

The non-proportional font used by EasyMod for list boxes and, especially, the Pattern Editor.

README.TXT

For those who like to read in DOS

KEYMAP.TXT

A keyboard for use with the pattern editor.

BWCC.DLL

Borland's custom control library. This file must reside in the directory from which you run EasyMod, your Windows directory, or your Windows System directory.

GUSPLAY.DLL

Benjamin Cooley's MOD player library for the Gravis Ultrasound. Like BWCC.DLL it must reside in one of those three directories.

GUSPLAY.TXT

Benjamin Cooley's original README.TXT for GUSPLAY.DLL

If all of the above are in the same directory, EasyMod should work fine.


The EasyMod Main Window

Title Bar

The title bar of the EasyMod main window displays the title "EasyMod for Windows" along with the title of the currently loaded song. If no song is loaded, or if the current song has not been named, the text "Untitled" will appear.

Menu

A standard Windows menu bar with all of the functions available in EasyMod. For more help, choose Menu Commands

Mod InfoBox

This box displays information pertinent to the currently loaded song.

Mod Type is the four character string describing the MOD file format. For version 1.0 of EasyMod, this string will be M.K. as only the Protracker 1.1 file format is supported.

Song Length is the number of patterns that will be played. This corresponds to the number of rows in the Song List Box. The horizontal scrollbar allows you to change the length of the song up to a maximum of 128 or down to a minimum of 1. Changes will be reflected in the Song List Box. New rows in the song will use pattern number 0 as the default pattern to play.

Number of Patterns displays the current number of patterns used in the song. The horizontal scrollbar allows you to increase or decrease the number of patterns in the song. Any new patterns will be empty.

Pattern Memory shows the amount of memory used by the pattern data.

Number of Samples displays the current number of samples in memory.

Sample Memory shows the  amount of memory used by the samples.

Song Table

The Song Table uses a list box to display the song. Each row in the list box shows the song position on the left and the pattern number to play on the right. The number of rows is limited to 128. The pattern number is limited to the current number of patterns in memory.  Use the scrollbars in the Mod InfoBox to change the number of rows and the number of patterns. To modify a position in the song, click the mouse on the row in the list box. The vertical scrollbar immediately to the right of the list box allows you to change the pattern number for that song position. Any changes will cause the Pattern Editor to display the currently selected pattern.

Sample Table

The Sample Table displays the name of each of the 31 samples. An asterisk (*) denotes that there is a sample in memory corresponding to that sample number. To change the currently selected sample, click the mouse on a line in the list box. Use the Audition command from the Sample menu to toggle sample playing on and off. When on, clicking on a line in the Sample Table will cause the sample to be played.

Pattern Editor

The Pattern Editor displays and allows you to edit the currently selected pattern. To change the currently selected pattern, click on a line in the Song Table list box.

Status Bar

The Status Bar displays general messages and rudimentary help.


Menu Commands

The File Menu

New

Clears all memory used by the current Mod file.

Open

Opens one of five types of files: MOD, SNG, PTN, WAV, EMS. Opening a Song (.SNG) file fills the Song Table. Opening a pattern (.PTN) file loads pattern data into the currently selected pattern and overwrites the current data. Opening a Windows WAV (.WAV) or EasyMod Sample (.EMS) file loads a sample into  memory for the currently selected sample. The Open dialog box defaults to the directory specified by choosing Working Directory  from the Configuration menu.

Save

Saves one of five types of files: MOD, SNG, PTN, WAV, EMS. The SNG type saves the Song Table. The PTN type saves the currently selected pattern. The WAV and EMS types save the currently selected sample. The Save dialog box defaults to the directory specified by choosing Working Directory  from the Configuration menu. NOTE: You MUST provide the proper extension in order for the file to be saved as the proper type.

Print

Prints portions of the MOD file to the Windows default printer. The following print formats are supported:

Song Table: Prints the contents of the Song Table

Sample Table: Prints a short version of the Sample Table (Sample Name and Number only)

Full Sample Table: Prints all parameters for all of the  samples.

Raw Pattern Data: Prints a HEX dump of the pattern data.

Formatted Pattern Data: Prints the pattern data formatted for readability in the following format

1 01: C#2 12 Set Volume          48

\  \   \   \  \                   \

 \  \   \   \  \	 Effect Parameter

  \  \   \   \  Effect

   \  \   \   Sample Number

    \  \   Note

     \  Pattern Line

Channel

Exit

Exits EasyMod.

The Edit Menu

Cut

Cut the highlighted section from the Pattern Editor and move it to the copy buffer.

Copy

Copy the highlighted section from the Pattern Editor to the copy buffer.

Paste

Cut the highlighted section from the Pattern Editor and move it to the copy buffer.

The Song Menu

Clear

Clear the Song Table and set the song length to one.

Play

Play the song. NOTE: This can also be done by pressing the Play Song button. Clicking the menu item again, or pressing the button, stops a playing song.

Rename

Change the title of the song. This has no effect on the DOS file name of the MOD file.

The Pattern Menu

Clear

Clear the current pattern.

Play

Play the current pattern. NOTE: This can also be done by pressing the Play Pattern button. Clicking the menu item again, or pressing the button, stops a playing pattern.

Record

Toggle recording on/off. A check mark beside the menu item denotes recording is on. When recording is on, key presses will insert notes into the current pattern. See Pattern Editor for more details.

The Sample Menu

Clear

Remove the current ly selected sample from memory.

Rename

Rename the currently selected sample.

Audition

Toggle sample auditioning on/off. A check mark beside the menu item denotes auditioning is on. When auditioning is on, clicking on the Sample Table causes the sample to play through the output device.

Full List

Opens the Full Sample List dialog box which shows all the parameters (Name, length, volume, fine tune, repeat start, and repeat end) for all of the samples.

Sample Editor

Starts the EasyMod Sample Editor.

The Configuration Menu

Input Device

Displays a dialog box showing the name and version number of the input device EasyMod will use for recording samples.

Output Device

Displays a dialog box showing the name and version number of the output device EasyMod will use for playing back samples.

Working Directory

Presents the user with a dialog box asking for the path for the working directory. This is not necessarily the directory EasyMod is in, but is the directory where EasyMod will look for MOD, SNG, PTN, WAV, and EMS files.

Use MCI Functions

When checked, causes EasyMod to use MCI for playing the MOD file to any Windows WAVE device. In order to use this feature, you must have an MCI MOD driver installed on your system.

When unchecked, EasyMod uses the GUSPLAY.DLL to play the MOD directly to the Advanced Gravis Ultrasound card.

The Help Menu

Contents

Executes Windows Help and displays this file.

About EasyMod

Displays the EasyMod About Dialog Box.


Registration

EasyMod for Windows version 1.1 is copyrighted shareware. Please support the shareware concept by sending $20 to IronWorks Software. This will allow further improvement EasyMod and the ability for IronWorks to churn out some other fine shareware products for the whole world to enjoy. When registering, please include a return address (electronic or mundane) and feel free to include any other info you

like. Those who register will be kept informed of any updates or new releases of EasyMod.

See IronWorks Software for addresses.


The Pattern Editor

The pattern editor allows a MOD pattern to be edited quickly and easily. The following describes its use.

Appearance

The pattern editor displays the lines of the currently selected pattern (selected by clicking on the Song Table) in the following form:

      Line number

     /

    /   Chan 1         Chan 2         Chan 3         Chan 4

   00: D#1 12 C30     ... 00 000     ... 00 000     ... 00 000

        \   \  \

         \   \  Command/Effect

          \   Sample number

    Note value

The cursor appears as a block over one of the letters/numbers in the window and denotes the current insertion point. All keyboard input and pasting will be done starting at this point.

Keyboard Interface

The keyboard interface allows direct editing of the pattern data. There are two modes.

In RECORD mode, enabled by selecting Record from the Pattern menu, each number key and letter key on the keyboard corresponds to a note value. Print the file KEYMAP.TXT for a keyboard map. When pressed, the note value and currently selected sample will be inserted in the current channel at the current line (the channel and line the cursor is on).

In DIRECT mode, enabled by selecting Record from the Pattern menu and ensuring the item is not checked, the pattern can be edited directly as if the pattern editor were a text editor. NOTE: This is the only way to enter an Effect. Each insertion will only accept certain keys which are allowed at that point.  For example, when editing the note value, the first position will only accept the letters A to G, the second position only a #, a period, or a space, and the third, only the numbers from 0 to 4. Similarly, the sample number will only take the numbers 0 to 3 in the tens column and 0 to 9 in the ones column. The command/effect  will take numbers and letters A through F. It is still possible, however, to enter an incorrect line. The pattern editor checks for errors and won't let you move to another line until the current line is correct. All newly entered data will be shown in blue and will turn black when verified. If an error is encountered, a beep will sound. Common errors include incomplete note value definitions (the pitch or octave not defined) or a sample number above 31.

In both modes, the cursor behaves like a cursor in any text editor and responds to the following keys:

LEFT ARROW	left one position

RIGHT ARROW	right one position

UP ARROW	up one line

DOWN ARROW	down one line

PAGEUP	up one page

PAGEDOWN	down one page

HOME	beginning of line

END	end of line

CTRL-HOME	line 0, HOME position

CTRL-END	line 63, END position

The Mouse

The mouse can perform three tasks:

Clicking the mouse on the pattern editor window moves the cursor to the point clicked and removes any previously highlighted area.

Dragging the mouse highlights an area that can be Cut or Copied using functions from the edit menu.

The display of the current pattern can be manipulated using the scrollbar on the right hand side of the window.


The EasyMod Sample Editor

The EasyMod Sample Editor is a dialog box which is displayed by choosing Editor from the Sample menu. By default, it displays the currently selected sample in the Sample Table (if it exists).

Sample Display Window

The sample display window is located in the center of the dialog box. It displays the currently selected sample in green on a black background. If a repeat start and repeat stop are defined for the sample, two vertical lines will be displayed at the corresponding positions within the sample.

The mouse can be used to highlight a portion of the sample by clicking and dragging. This highlighted portion can then be cut, copied, and pasted using the command buttons described below.

Sample Parameters

Across the top of the dialog box, above the sample display window, the various sample parameters are displayed. The sample name can be changed by pressing the Sample Name button. The Fine Tune and Volume can be adjusted using the horizontal scrollbars next to each.

Sample Number Buttons

Directly above the sample display window are 31 buttons. Pressing one of these buttons displays the corresponding  sample. The sample parameters are displayed above. A button with a number on it means there is sample data in memory for that sample. A period on the button means that sample is empty.

Loop Adjustment Scrollbars

Two scrollbars are located beneath the sample display window. The upper one allows adjustment of the repeat start parameter. The lower allows adjustment of the repeat stop parameter.

Command Buttons

Down the right side of the dialog box are the command buttons that give the Sample Editor its functionality.

CLEAR - clears the sample

CUT - cuts the highlighted portion out of the sample and stores it in the copy buffer.

COPY - copies the highlighted area to the copy buffer.

PASTE OVER - pastes the contents of the copy buffer OVER the current data. The sample length remains the same.

PASTE INTO - inserts the contents of the copy buffer into the sample, lengthening the sample by the size of the copy buffer.

PLAY - Plays the sample. If the Loop Checkbox is checked, the sample is looped (using Repeat Start and Repeat Stop) the

number of times specified. The scrollbar changes the number of times to loop.

RECORD - displays the Record Dialog Box. This dialog box allows you to specify one of three sampling rates. Each rate corresponds to a playback pitch. For example, selecting B2 means that a note value of B2 is required to give the same pitch upon playback. You can also specify a User Defined sampling rate. It's up to you to figure out what pitch to play it back at in the MOD file. The Sample Name edit box lets you name the sample, and the Sample Size scrollbar lets you choose the length of the sample in bytes. Choose record to start recording or cancel to abort.

OPEN - displays the Open File dialog box and lets you load a .WAV or .EMS file.

SAVE - displays the Save File dialog box and lets you save the current sample to disk as either a .WAV or .EMS file.

CLOSE - exits the Sample Editor.


Steps in Creating a Song

A MOD song contains three distinct parts:

1. The digitized samples used for sounds.

2. Patterns which tell which sample to play in each channel at any given time.

3. The Song Table which specifies which pattern to play at each position in the song.

When EasyMod first starts, it loads a blank song into memory with the following parameters:

Song Name is blank

Song Length = 1

Number of Patterns = 1

Sample Memory is empty

The Pattern Editor is filled with a blank pattern

To create a song, you need to load or record some samples, edit the song table, and edit the patterns. The following steps will take

you through the procedure:

Step 1: Obtain some samples

When EasyMod starts, the sample memory is blank. You need to fill in some of this memory with the sounds you want to play. There are two ways to do this:

1. Load a sample from disk. Click a line in the Sample Table list box corresponding to the sample number you want to load. Pick Open from the File Menu to load a sample. This can be either a Windows WAV file or an EasyMod Sample. If you need to find sounds, many BBS's have samples in the Windows WAV format. There are also many utilities for converting digitized samples from one format to another. As long as you can get them converted to WAV then you're in business.

2. Digitize your own sample using the EasyMod Sample Editor. Choose Editor from the Sample menu. The Sample Editor also allows you to load a sample from disk in either of the two formats mentioned above.

You may wish to rename a sample you have loaded, or give a name to a sample that doesn't have one. To do so, choose Rename from the Sample menu.

Step 2: Edit the pattern

You are given an empty pattern (pattern 0) to edit. See the Pattern Editor section for detailed instructions on the use of the editor. You may wish to hear your pattern to see if you like the sound of it. To do so, you need a Gravis Ultrasound card or an MCI MOD driver installed. Choose Play from the Pattern menu.

Step 3: Add a line to the song

You now have a song of length one and the pattern that will play for song position 0. To add more positions to the song, use the scrollbar in the Mod InfoBox. You can add as many lines as you like by clicking on the right arrow. You can also remove lines by clicking on the left arrow.

Step 4: Select a pattern to play for the new song position

Each new position you add to the song will be given a default pattern of pattern 0. To change the pattern number to play at any position, click on that position in the Song Table and use the scrollbar immediately to the right of the list box to change the pattern number.

Step 5: Add a new pattern

If you only have one pattern at this point, you probably noticed that moving the Song Table scrollbar didn't do anything. You need to increase the number of patterns available for inclusion in the song. To do this, use the scrollbar in the Mod InfoBox. Each new pattern will be empty and ready for editing.

Step 6. Listen to the song

As you are working, you will want to hear the song. To do so, you need a Gravis Ultrasound card or an MCI MOD driver installed. Choose Play from the Song menu.

Step 7: Name the song

To name the song, choose Rename from the Song menu. This name can be up to 20 characters in length and has no effect on the file name used to save the MOD file. You will see the song name show up in the EasyMod window's title bar.

Step 8: Save the file

Once you are satisfied with your song, choose Save from the File menu to save it. You can also save portions of your work this way. The Save dialog box allows you to save the Song Table, the current pattern, or the current sample as well as the entire MOD file.


File Formats

Protracker 1.1 Module

EasyMod Song (.SNG)

EasyMod Pattern (.PTN)

Windows WAV

EasyMod Sample (.EMS)


Disclaimer

There is no warranty, explicit or implied, of the suitability of this software for any purpose.  This software is provided as is, and the user of this software assumes the entire risk as to its quality, accuracy, and for any damages resulting from the use of this software.


Thanks To ...

Benjamin Cooley for his GUSPLAY.DLL. -- a library of routines for playing MOD files on the Gravis Ultrasound in Windows.


Coming Soon ...

Plans for future enhancements to EasyMod are:

- Support for MOD formats (nothing definite -- let us know what you want)

- Support for other sound cards (nothing definite -- again, let us know)

- The ability to highlight more of the pattern than just what is showing in the editor

- A signal processing module for the Sample Editor including: spectral analysis by FFT, filtering in the frequency domain,

reversing the sample, time dilation, frequency shift, addition/subtraction of samples and anything else we can think of.

- support for recording patterns with a MIDI device, playing patterns back throough MIDI devices, and exporting/importing MIDI data.


Protracker 1.1 Module File Format

Offset 	Bytes	Description

0     	20    	Songname

Information for sample 1-31:

20     	22    	Samplename for sample 1.

42      	2    	Samplelength for sample 1. Stored as number of words.

               	Multiply by two to get real sample length in bytes.

44      	1	Lower four bits are the finetune value, stored as a signed

four bit number.

Value:	Finetune:

0	0

1	+1

2	+2

3	+3

4	+4

5	+5

6	+6

7	+7

8	-8

9	-7

A	-6

B	-5

C	-4

D	-3

E	-2

F	-1

45	1	Volume for sample 1. Range is $00-$40, or 0-64 decimal.

46	2	Repeat point for sample 1. Stored as number of words offset

from start of sample. Multiply by two to get offset in bytes.

48	2	Repeat Length for sample 1. Stored as number of words in

loop. Multiply by two to get Repeat Length in bytes.

Note: The sample length, repeat  start, and repeat length are stored as 680x0 WORDS, meaning that for an 80x86 to read them the

HIBYTE and the LOBYTE have to swapped.

Information for the next 30 samples starts here. It's just like the info for

sample 1.

Offset  	Bytes  	Description

50	30	Sample 2...

80	30	Sample 3...

   .

   .

   .

890	30	Sample 30...

920	30	Sample 31...

Offset	Bytes	Description

950	1	Songlength. Range is 1-128.

951	1	This byte is set to 127.

952	128	Song positions 0-127. Each hold a number from 0-63 that

corresponds to the pattern  number to play at that position.

1080	4	The four letters "M.K."

Offset	Bytes	Description

1084	1024	Data for pattern 00.

   .

   .

   .

xxxx  Number of patterns stored is equal to the highest pattern number

      in the song position table (at offset 952-1079).

Each note is stored as 4 bytes, and all four notes at each position in

the pattern are stored after each other.

00 -  chan1  chan2  chan3  chan4

01 -  chan1  chan2  chan3  chan4

02 -  chan1  chan2  chan3  chan4

etc.

Info for each note:

 _____byte 1_____   byte2_    _____byte 3_____   byte4_

/                 /        /                 /

0000          0000-00000000  0000          0000-00000000

Upper nibble   12 bits for   Lower nibble  12 bits for

of sample      note period   of sample     Command/Effect

number                       number


EasyMod Song File Format (.SNG)

The EasyMod Song File stores the Song Position information for a MOD file along with the Song Name.

Offset	Parameter	Size

0	Song Name	20 bytes

20	Song Length	1 byte

21	Song Data	128 bytes

The song data consists of 128 BYTE values which correspond to the pattern number to play for that song position, offset 21 being song

position zero.


EasyMod Pattern File Format (.PTN)

The EasyMod Pattern File contains one full pattern and is 1024 bytes long.

A pattern consists of 64 notes for each of four channels. Each note is stored as 4 bytes, and all four notes at each position in the pattern are stored after each other.

00 -  chan1  chan2  chan3  chan4

01 -  chan1  chan2  chan3  chan4

02 -  chan1  chan2  chan3  chan4

   .

   .

   .

63 -  chan1  chan2  chan3  chan4

Info for each note:

 _____byte 1_____   byte2_    _____byte 3_____   byte4_

/                 /        /                 /

0000          0000-00000000  0000          0000-00000000

Upper nibble   12 bits for   Lower nibble  12 bits for

of sample      note period   of sample     Command/Effect

number                       number


Windows WAV File Format

The Windows WAV file uses the RIFF format for storing the wave. Each RIFF file contains 'chunks' which are a particular type of data. Windows Multimedia I/O Functions allow easy creation, reading, and writing of RIFF 'chunks'.  The WAV file has two RIFF chunks: the WAVE chunk, and the DATA chunk.

The WAVE chunk is the header information for the wave file and uses the Windows PCMWAVEFORMAT structure.

The DATA chunk contains the sample data as unsigned char's for 8-bit samples. Since MOD files use signed char's for data, each point in the WAV file must have 128 subtracted from it.

For more information on the WAV file format, see publications on Windows multimedia programming and RIFF files.


EasyMod Sample File Format (.EMS)

The EasyMod Sample File stores a the sample data along with its header information: sample name, length, volume, fine tune, repeat start, and repeat end. Using this format, a sample can then be retrieved with all the relevant parameters intact, unlike a Windows WAV file which only stores the sample data.

The format is as follows:

Offset	Parameter	Size

0	Sample Name	22 bytes

22	Sample Length	unsigned int (2 bytes)

24	Fine Tune	1 byte

25	Volume	1 byte

26	Repeat Start	unsigned int (2 bytes)

28	Repeat End	unsigned int (2 bytes)

30	Sample Data	Sample Length bytes

The sample data is stored as signed char values. This version of EasyMod only supports 8-bit samples.


IronWorks Software

The following are current as of April '96.

World Wide Web:	www.mulberry.com/~mferris

E-Mail:	mferris@mulberry.com

Snail Mail:	304-810 Kyle Court

Brockville Ontario

Canada

K6V 6H6


MOD Commnands/Effects

Looking at the Mod File Format, you will see that the Effect for each note is packed into 12 bits (3 nibbles) in the following way:

byte 3	byte 4

....EEEE	xxxxyyyy

The upper 4 bits of byte 3 belong to the sample number. The lower 4 bits of byte 3, designated EEEE, are the effect number and the 2 nibbles  in byte 4, designated xxxx and yyyy, are the parameters for the effect Depending on the type of effect, these parameters are treated differently. Some use the 2 nibbles as one byte of data, some use the two nibbles separately as two parameters, and the Extended Effect uses xxxx as the effect number and yyyy as the parameter.

Most of the effects use 'ticks' for timing. A 'tick' is the smallest division of time used in a MOD file. Effect #F sets the the number of ticks that occur between each line in a pattern.

Here is a listing of the effects, their parameters, and what they do:

Effect #0: Arpeggio

This effect takes two parameters. A note only has an arpeggio if the two parameters are non-zero. Arpeggio plays the given note, then the note + xxxx, then the note + yyyy where xxxx and yyyy are in half-steps all within a single line of playback time.

Effect #1: Slide Up

This effect takes one parameter. Slides a note up from the given note by xxxxyyyy notes for each tick that occurs in that line.

Effect #2: Slide Down

This effect takes one parameter. Slides a note down from the given note by xxxxyyyy notes for each tick that occurs in that line.

Effect #3: Tone Portamento

This effect takes one parameter. It alters the given note by xxxxyyyy notes for each tick that occurs in that line.

Effect #4: Vibrato

This effect takes two parameters.  A vibrato is an oscillation of pitch. yyyy is the amplitude, in notes, and (xxxx * speed)/64 is the is the number of full oscillations which occur in the line.

Effect #5: Tone Portamento + Volume Slide

This effect takes two parameters.  Causes a volume slide to occur while effect #3 is in progress. xxxx is the amount to increase to the volume, yyyy is the amount to decrease the volume. One of the parameters must be zero.

Effect #6: Vibrato + Volume Slide

This effect takes two parameters.  Same as effect #5 except to the volume slide while effect #4 is progress.

Effect #7: Tremolo

This effect takes two parameters. A tremolo is a oscillation of volume. yyyy*(speed-1) is the amplitude of oscillation and (xxxx*speed)/64 is the number of full oscillations which occur in the line.

Effect #8: NOT USED

Effect #9: Set SampleOffset

This effect takes one parameter.  Plays the sample starting at an offset of xxxxyyyy*512 bytes. If no sample is specified, uses the last sample played.

Effect #A: VolumeSlide

This effect takes two parameters. xxxx is the amount to slide up, yyyy is the amount to slide down. One of these must be zero.

Effect #B: Position Jump

This effect takes one parameter.  xxxxyyyy is the song position to jump to after this line has been played.

Effect #C: Set Volume

This effect takes one parameter.  xxxxyyyy is the volume to set. Values above 64 are ignored.

Effect #D: Pattern Break

This effect takes two parameters. Causes a jump to the next song position and starts playback at xxxx*10+yyyy in the pattern.

Effect #E: *Extended Effects

xxxx determines which extended effect to implement. See below

Effect #F: Set Speed

This effect takes one parameter.  Causes xxxxyyyy ticks to occur during every line of play back starting at the next line. Valid values are 1 to 31.

*Extended Effects

Effect #E0:  Set Filter on/off

This sets a hardware sound filter ON if yyyy=0 or OFF if yyyy > 0. This is really only useful for playback on the Amiga.

Effect #E1:  FineSlide Up

Slides a note up yyyy notes at the beginning of the line. Unlike effect #1, the frequency of the sample is only modified once.

Effect #E2:  FineSlide Down

Slides a note down yyyy notes at the beginning of the line. Unlike effect #2, the frequency of the sample is only modified once.

Effect #E3:  Glissando Control

Sets glissando ON if yyyy=1 or OFF if yyyy=0. Glissando causes Tone Portamento to slide a half note at a time rather than the smooth slide.

Effect #E4:  Set Vibrato Waveform

Sets the waveform for vibrato effects:

yyyy	WaveForm

0	Sine

1	Ramp Down

2	Square

3 	Random

Adding 4 to yyyy for any of the above causes the waveform to not 'retrigger' when vibrato is called but to continue from

where it left off.

Effect #E5:  Set FineTune

Sets the Fine Tune value to the signed nibble value yyyy.

Effect #E6:  Set/Jump to Loop

Sets the loop start point if yyyy=0 or the number of times to loop if yyyy>0. If no start point was set, uses the first line in the pattern.

Effect #E7:  Set Tremolo Waveform

Same as effect #E4 but sets the waveform to use for tremolo effects.

Effect #E8:  NOT USED

Effect #E9:  Retrig Note

Causes the specified note to retrigger yyyy ticks into the line. ie: if yyyy = 2 and speed is 6, note will played three times during the line.

Effect #EA:  Fine VolumeSlide Up

Increments the volume of the channel by yyyy.

Effect #EB:  Fine VolumeSlide Down

Decrements the volume of the channel by yyyy.

Effect #EC:  NoteCut

Sets the volume of the note to zero yyyy ticks into the line, thereby cutting it off.

Effect #ED:  NoteDelay

Delays the start of a note by yyyy ticks.

Effect #EE:  PatternDelay

Delays the play of the next line by yyyy*speed ticks.

Effect #EF:  Invert Loop

Used on the Amiga to play a sample backwards.